ActiveMQ এর মাধ্যমে Message Producers এবং Consumers তৈরি

Java Technologies - অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) Apache ActiveMQ এর সাথে Java ইন্টিগ্রেশন |
134
134

অ্যাপাচি অ্যাকটিভএমকিউ একটি মেসেজ ব্রোকার সিস্টেম যা মেসেজিং সিস্টেমের মধ্যে তথ্য প্রেরণ এবং গ্রহণের কাজ করে। এই প্রক্রিয়াতে Message Producers এবং Message Consumers দুটি প্রধান ভূমিকা পালন করে। অ্যাকটিভএমকিউ ব্যবহার করে, Java অ্যাপ্লিকেশন তৈরি করা হয় যা মেসেজ পাঠানোর জন্য প্রোডিউসার (Producer) এবং গ্রহণ করার জন্য কনজিউমার (Consumer) হিসেবে কাজ করে।

এখানে আমরা অ্যাকটিভএমকিউ ব্যবহার করে একটি Message Producer এবং Message Consumer তৈরি করার প্রক্রিয়া দেখবো।


১. ActiveMQ Message Producer তৈরি করা

একটি Message Producer হলো এমন একটি অ্যাপ্লিকেশন যা মেসেজ তৈরি করে এবং অ্যাকটিভএমকিউ ব্রোকারে পাঠায়। এটি একটি নির্দিষ্ট কিউ (Queue) বা টপিক (Topic) ব্যবহার করে মেসেজ পাঠায়।

Message Producer কোড উদাহরণ:

import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;

public class MessageProducerExample {
    public static void main(String[] args) {
        try {
            // ActiveMQ ConnectionFactory তৈরি
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
            Connection connection = connectionFactory.createConnection();
            connection.start();  // সংযোগ শুরু করা

            // সেশন তৈরি
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            // কিউ তৈরি
            Destination destination = session.createQueue("TEST_QUEUE");

            // MessageProducer তৈরি
            MessageProducer producer = session.createProducer(destination);
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);  // Non-persistent delivery mode

            // টেক্সট মেসেজ তৈরি
            TextMessage message = session.createTextMessage("Hello, ActiveMQ!");

            // মেসেজ পাঠানো
            producer.send(message);
            System.out.println("Message Sent: " + message.getText());

            // সংযোগ বন্ধ
            connection.close();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

এই কোডে, MessageProducerExample ক্লাসটি একটি মেসেজ তৈরি করে এবং সেটি "TEST_QUEUE"-এ পাঠায়। এখানে Non-persistent মেসেজ ডেলিভারি মোড ব্যবহার করা হয়েছে, যার মানে মেসেজটি দ্রুত পাঠানো হবে এবং সিস্টেম বন্ধ হলে এটি হারিয়ে যাবে।


২. ActiveMQ Message Consumer তৈরি করা

একটি Message Consumer হলো এমন একটি অ্যাপ্লিকেশন যা একটি নির্দিষ্ট কিউ বা টপিক থেকে মেসেজ গ্রহণ করে এবং সেটি প্রক্রিয়া করে।

Message Consumer কোড উদাহরণ:

import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;

public class MessageConsumerExample {
    public static void main(String[] args) {
        try {
            // ActiveMQ ConnectionFactory তৈরি
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
            Connection connection = connectionFactory.createConnection();
            connection.start();  // সংযোগ শুরু করা

            // সেশন তৈরি
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            // কিউ তৈরি
            Destination destination = session.createQueue("TEST_QUEUE");

            // MessageConsumer তৈরি
            MessageConsumer consumer = session.createConsumer(destination);

            // মেসেজ গ্রহণ
            Message message = consumer.receive();
            if (message instanceof TextMessage) {
                TextMessage textMessage = (TextMessage) message;
                System.out.println("Message Received: " + textMessage.getText());
            }

            // সংযোগ বন্ধ
            connection.close();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

এই কোডে, MessageConsumerExample ক্লাসটি "TEST_QUEUE"-থেকে মেসেজ গ্রহণ করে এবং সেটি কনসোল-এ প্রিন্ট করে।


Message Producers এবং Consumers এর মধ্যে সম্পর্ক

  • Producer (প্রোডিউসার) মেসেজ তৈরি করে এবং Consumer (কনজিউমার) সেই মেসেজ গ্রহণ করে।
  • এখানে, MessageProducerExample ক্লাসটি মেসেজ পাঠাচ্ছে এবং MessageConsumerExample ক্লাসটি সেই মেসেজ গ্রহণ করছে।
  • মেসেজটি "TEST_QUEUE"-এ জমা হবে এবং কনজিউমার তখন এটি গ্রহণ করবে।

এই সিস্টেমটি JMS (Java Message Service) প্রোটোকল ব্যবহার করে অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকারের মধ্যে মেসেজ প্রেরণ এবং গ্রহণ করে।


সারাংশ

অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) ব্যবহারের মাধ্যমে Message Producers এবং Message Consumers তৈরি করা একটি সহজ প্রক্রিয়া। Producer মেসেজ তৈরি করে এবং অ্যাকটিভএমকিউ ব্রোকারে পাঠায়, যেখানে Consumer সেই মেসেজ গ্রহণ করে এবং প্রক্রিয়া করে। এই পদ্ধতিতে অ্যাপ্লিকেশনগুলো একে অপরের সাথে অ্যাসিঙ্ক্রোনাসভাবে যোগাযোগ করতে পারে এবং তথ্য আদান-প্রদান নিশ্চিত করতে পারে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion